SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q59]    
/*-------------------------------------------------------------------*/                                
/*----- Empresa           : OFISIS S.A.                          ----*/                                
/*----- Cliente           : OFISIS S.A.                          ----*/                                
/*----- Sistema           : Contabilidad                         ----*/                                
/*----- Modulo            : Empresa                              ----*/                                
/*----- Programa          : Registro de Ventas RS 234/2006       ----*/                                
/*----- Nombre            : SP_TXMVTO_CNTB_Q59      ----*/                                 
/*----- Script            : TXMVTO_CNTB                          ----*/                                
/*----- Desarrollado por  : Franco Gamboni Koifman               ----*/                                
/*----- Fecha             : 16/09/1997                           ----*/                                
/*----- Base de Datos     : MS SQL Server                        ----*/                                
/*----- Version BD        : 8.0                                  ----*/                                
/*-------------------------------------------------------------------*/                                
/*-------------------------------------------------------------------*/                            
/*----- Modificado 1 por  :           ----*/                            
/*----- Fecha Modifica    :           ----*/                            
/*----- Detalle Modifica  :           ----*/                            
/*-------------------------------------------------------------------*/                            
/*-------------------------------------------------------------------*/                                
/*----- Drop proc SP_TXMVTO_CNTB_Q59                             ----*/                           
/*----- Grant all on SP_TXMVTO_CNTB_Q58 to PUBLIC     ----*/                                
/*----- EXEC SP_TXMVTO_CNTB_Q58 '01', ' ', 1, 2008, 8, 8, 'ANA', 'FEC', 'ORI'   
----*/                                
/*-------------------------------------------------------------------*/                                
@ISCO_EMPR        TD_VC_002,                                
@ISCA_WHER_LOCA   TD_VC_255,                                
@INNU_CNTB_EMPR   TD_IN_001_CONT,  
@INNU_ANNO        TD_IN_004_ANNO,  
@INNU_MESE_INIC   TD_IN_002_MESE,  
@INNU_MESE_FINA   TD_IN_002_MESE,  
@ISTI_REPO        TD_VC_003,  
@ISTI_ORDE_REPO   TD_VC_003,  
@ISTI_REPO_INFO   TD_VC_003    
As                                
Create Table #TWMVTO_CNTB_Q21_1                                
(FE_DOCU      Datetime NULL,          
 FE_DOCU_VENC Datetime NULL,                            
 TI_DOCU_SUNA Char(2)  NULL,                                
 TI_DOCU   Char(3)  NULL,                                
 NO_DOCU      Varchar(50) NULL,                      
 NU_DOCU      Char(20) NULL,                                
 CO_UNID_CNTB Char(3)  NULL,                                
 CO_OPRC      Char(3)  NULL,                                
 NU_ASTO      Char(10) NULL,           
 CO_DOCU_SUNA Char(3)  NULL,                                                     
 CO_CLIE      Varchar(20) NULL,                       
 NO_CORT_CLIE Char(50) NULL,                                
 NU_RUCS_CLIE varchar(20) NULL,                                
 CO_MONE      Char(3)  NULL,                                
 IM_INAF_ORIG Numeric(16,4)  NULL,                                
 IM_AFEC_ORIG Numeric(16,4)  NULL,                                
 IM_EXPO_ORIG Numeric(16,4)  NULL,                                    
 IM_IIGV_ORIG Numeric(16,4)  NULL,                                
 IM_IISC_ORIG Numeric(16,4)  NULL,                                
 IM_TRIB_ORIG Numeric(16,4)  NULL,  
 IM_TOTA_ORIG Numeric(16,4)  NULL,                                
 IM_INAF_CNTB Numeric(16,4)  NULL,                                
 IM_EXON_CNTB Numeric(16,4)  NULL,  
 IM_AFEC_CNTB Numeric(16,4)  NULL,                                
 IM_EXPO_CNTB Numeric(16,4)  NULL,                                
 IM_IIGV_CNTB Numeric(16,4)  NULL,                                
 IM_IISC_CNTB Numeric(16,4)  NULL,                                
 IM_TRIB_CNTB Numeric(16,4)  NULL,  
 IM_TOTA_CNTB Numeric(16,4)  NULL,                                
 FA_CAMB      Numeric(9,4)   NULL,                           
 FE_DOCU_REFE Datetime NULL,          
 CO_SUNA_REFE Varchar(2) NULL,           
 TI_DOCU_REFE Varchar(3) NULL,          
 NU_DOCU_REFE Varchar(20) NULL,      
 ST_EXON_INAF Varchar(3) NULL)                                
                                
Declare                                 
 @VDFE_DOCU      TD_DT_001,                                
 @CSNU_ASTO_BASE Char(20),  
 @VSCO_MONE_BASE TD_VC_003,                                
 @VSCO_MONE_BAS1 TD_VC_003,                                
 @VSTI_DOCU     TD_VC_003,                                
 @VSNU_DOCU     TD_VC_020,                                
 @VSCO_UNID     TD_VC_003,                                
 @VSCO_OPRC     TD_VC_003,                                
 @CSNU_ASTO     TD_VC_010,                                
 @CSCO_AUXI     TD_VC_020,                                
 @VSNO_CORT_CLIE    TD_VC_050,                                
 @VSNU_RUCS_CLIE    TD_VC_020,                                
 @VSCO_MONE  TD_VC_003,                                
 @VSCO_OPR1     TD_VC_003,                                
 @VSCO_OPR2     TD_VC_003,                                
 @VSID_VENT      TD_VC_003,                                
 @VSID_IIGV      TD_VC_003,                                
 @VSID_FONA      TD_VC_003,                                
 @VSID_RENT      TD_VC_003,                                
 @VSCO_SUNA        TD_VC_002,                                
 @VSID_EXPO      TD_VC_003,                                
 @VNIM_TOTA_BASX    TD_NU_016_004,                                
 @VNIM_TOTA_BASY    TD_NU_016_004,                                
 @VNIM_INAF_ORIX    TD_NU_016_004,                    
 @VNIM_AFEC_ORIX    TD_NU_016_004,                                
 @VNIM_EXPO_ORIX    TD_NU_016_004,                                
 @VNIM_IIGV_ORIX    TD_NU_016_004,                                
 @VNIM_TOTA_ORIX    TD_NU_016_004,                                
 @VNIM_INAF_SOLX    TD_NU_016_004,                                
 @VNIM_AFEC_SOLX    TD_NU_016_004,                            
 @VNIM_EXPO_SOLX    TD_NU_016_004,                                
 @VNIM_IIGV_SOLX    TD_NU_016_004,                                
 @VNIM_TOTA_SOLX    TD_NU_016_004,                                
  @VNFA_CAMB     TD_NU_009_004,                                
 @VNIM_IIGV_ORIG    TD_NU_016_004,                                
 @VNIM_TOTA_ORIG    TD_NU_016_004,                                
 @VNIM_EXPO_ORIG    TD_NU_016_004,                                
 @VNIM_IIGV_CNTB    TD_NU_016_004,                                
 @VNIM_TOTA_CNTB    TD_NU_016_004,                                
 @VNIM_TRIB_ORIG    TD_NU_016_004,  
 @VNIM_TRIB_CONT    TD_NU_016_004,  
 @VNPO_IGV1     TD_NU_009_004,                                
 @VNPO_IGV2     TD_NU_009_004,                                
 @VNPO_REN1     TD_NU_009_004,                                
 @VNPO_REN2     TD_NU_009_004,                                
 @VSST_EXON_INAF TD_VC_003,                                 
       
 @CDFE_DOCU     TD_DT_001,                                
 @CSTI_DOCU_CNTB    TD_VC_003,                                
 @CSNU_DOCU     TD_VC_020,                                
 @CSCO_UNID  TD_VC_003,                                
 @CSCO_OPRC     TD_VC_003,                                
 @VSNU_ASTO     TD_VC_010,                                
 @CSCN_CNTB_EMPR    TD_VC_010,                                
 @CSTI_OPER_CNTB    TD_VC_003,                                
 @CSCO_MONE     TD_VC_003,                                
 @CNFA_CAMB     TD_NU_009_004,                                
 @CNIM_MVTO_ORIG    TD_NU_016_004,                                
 @CNIM_MVTO_CNTB    TD_NU_016_004,                             
 @CSID_CNTA      TD_VC_003,                                
 @CSTI_AUXI_EMPR   TD_VC_001,                                
 @CSST_EXON_INAF TD_VC_003,      
 @VSNO_DOCU          TD_VC_050,                                
 ----------------------------------------                                
@VSNU_CNTB_EMPR  TD_VC_001,                                
@VSNU_ANNO       TD_VC_004,                                
@VSNU_MESE_INIC  TD_VC_002,                                 
@VSNU_MESE_FINA  TD_VC_002,                                
@CNNU_MESE       TD_IN_002_MESE,                                
@CNPO_REN1   TD_NU_009_004,                                
@CNPO_REN2   TD_NU_009_004,                                
@CNPO_IGV1       TD_NU_009_004,                                
@CNPO_IGV2   TD_NU_009_004,                                
@VSCO_AUXI   TD_VC_020,                                  
@VNPO_IGV1_ANNO  TD_NU_009_004,                                  
@VNPO_IGV2_ANNO  TD_NU_009_004,                                
@VSCO_SUNA_0001  TD_VC_002,                                
@VSCO_SUNA_NOCR  TD_VC_002,                                
@VSNU_DOCU_0001  TD_VC_020,                                
@VDFE_DOCU_0001  TD_DT_001,                     
                    
@CDFE_ASTO_CNTB TD_DT_001,                     
@VDFE_ASTO_CNTB TD_DT_001,                     
@CSTI_CAMB TD_VC_003,                     
@VSTI_CAMB_BASE TD_VC_003,                     
@VNIM_TOTA_CONT TD_NU_016_004,                
@VNIM_IIGV_CONT TD_NU_016_004,                
@VNIM_EXPO_CONT TD_NU_016_004,                               
@VNIM_CONT_BASX TD_NU_016_004,                               
@VNIM_CONT_BASY TD_NU_016_004,                
                
@VNIM_AFEC_CONX TD_NU_016_004,                
@VNIM_INAF_CONX TD_NU_016_004,                
@CSST_CNTA_CAMB TD_VC_003,               
@CSCO_SUNA_REFE Varchar(2),           
@CSTI_DOCU_REFE TD_VC_003,               
@CSNU_DOCU_REFE TD_VC_020,           
@VSCO_SUNA_REFE Varchar(2),           
@VSTI_DOCU_REFE TD_VC_003,               
@VSNU_DOCU_REFE TD_VC_020,      
--NUEVOS      
@CDFE_DOCU_VENC TD_DT_001,      
@CSCO_DOCU_SUNA TD_VC_003,      
@CDFE_DOCU_REFE TD_DT_001,      
@VDFE_DOCU_VENC TD_DT_001,      
@VSCO_DOCU_SUNA TD_VC_003,      
@VDFE_DOCU_REFE TD_DT_001,     
@VSID_IMSE_CONS TD_VC_003,    
@VSID_TRIB  TD_VC_003,  
@VNIM_TRIB_SOLX TD_NU_016_004,  
@VNIM_EXON_SOLX TD_NU_016_004,  
@VNIM_IISC_SOLX TD_NU_016_004,   
@VNIM_IISC_ORIG TD_NU_016_004,   
@VNIM_IISC_CONT TD_NU_016_004,  
@VDFE_PAGO  TD_DT_001  
                
 Select @VNIM_TOTA_CONT = 0.00                
 Select @VNIM_IIGV_CONT = 0.00                
 Select @VNIM_EXPO_CONT = 0.00                
 Select @VNIM_AFEC_CONX = 0.00                
 Select @VNIM_INAF_CONX = 0.00                
                
 Select @VNIM_IIGV_ORIG = 0.00                                
 Select @VNIM_TOTA_ORIG = 0.00                                
 Select @VNIM_EXPO_ORIG = 0.00                  
 Select @VDFE_DOCU      = Null                                
 Select @VSTI_DOCU      = Null                                
 Select @VSNO_CORT_CLIE = Null                                
 Select @VSNU_RUCS_CLIE = Null                                
 Select @VSCO_MONE      = Null                                
 Select @VNIM_AFEC_ORIX = 0.00                      
 Select @VNIM_INAF_ORIX = 0.00                                
 Select @VNIM_EXPO_ORIX = 0.00                                
 Select @VNIM_IIGV_ORIX = 0.00                                
 Select @VNIM_TOTA_ORIX = 0.00                                
 Select @VNIM_AFEC_SOLX = 0.00                                
 Select @VNIM_INAF_SOLX = 0.00      
 Select @VNIM_EXON_SOLX = 0.00, @VNIM_IISC_SOLX = 0.00, @VNIM_TRIB_SOLX = 0.00  
 Select @VNIM_EXPO_SOLX = 0.00                                
 Select @VNIM_IIGV_SOLX = 0.00                                
 Select @VNIM_TOTA_ORIX = 0.00                                
 Select @VNFA_CAMB      = 0.00                                    
 Select @VSNU_ASTO  = Null                                
 Select @VSTI_CAMB_BASE = NULL                    
 Select @VDFE_ASTO_CNTB = NULL       
 Select @VNIM_IISC_SOLX = 0.00  
 Select @VNIM_IISC_ORIG = 0.00  
 Select @VNIM_IISC_CONT = 0.00  
 Select @VNIM_TRIB_ORIG = 0.00  
 Select @VNIM_TRIB_CONT = 0.00  
                               
Select @VSCO_MONE_BAS1 = CO_MONE,                                 
       @VSID_VENT = ID_VENT,                                 
       @VSID_IIGV = ID_IMPT_VENT,                                
       @VSID_EXPO = ID_0003,    
       @VSID_IMSE_CONS = ID_IMSE_CONS,    
       @VSID_TRIB = ID_TRIB    
  From TTCNTB_EMPR                           
Where CO_EMPR = @ISCO_EMPR                                 
  and NU_CNTB_EMPR = @INNU_CNTB_EMPR          
                          
/*----- Cursor para el reporte de Registro de Compras -----*/                                
Select @VSNU_CNTB_EMPR = Convert(Varchar(1),@INNU_CNTB_EMPR)                                
Select @VSNU_ANNO      = Convert(Varchar(4),@INNU_ANNO )                                
Select @VSNU_MESE_INIC = Convert(Varchar(2),@INNU_MESE_INIC )                                
Select @VSNU_MESE_FINA = Convert(Varchar(2),@INNU_MESE_FINA )                                
                          
-- OBTENGO EL IGV ANTES DE DEFINIR EL CURSOR                                                           
Select @VSCO_SUNA_NOCR = CO_SUNA_NOCR From TMPARA_CONT                               
Where CO_EMPR = @ISCO_EMPR                              
                                
SELECT @VNPO_IGV1_ANNO = PO_IMPT_VEN1,                                
       @VNPO_IGV2_ANNO = PO_IMPT_VEN2,                                 
       @VNPO_REN1 = PO_IMPT_REN1,                                
       @VNPO_REN2 = PO_IMPT_REN2                                
From  TTPORC_IMPT                                
Where CO_EMPR = @ISCO_EMPR                                
And   NU_ANNO = @INNU_ANNO                                
And   NU_MESE = @INNU_MESE_FINA                                
                                
If @VNPO_IGV1_ANNO IS Null                                
 Select @VNPO_IGV1_ANNO = 0.00                                
If @VNPO_IGV2_ANNO IS Null                                
 Select @VNPO_IGV2_ANNO = 0.00                                
If @VNPO_REN1 IS Null                                
 Select @VNPO_REN1 = 0.00                                
If @VNPO_REN2 IS Null                                
 Select @VNPO_REN2 = 0.00                                
    
Exec(' Declare CU_TXMVTO_CNTB_Q21_1 Cursor For       
 Select  TXMVTO_CNTB.FE_DOCU, TXMVTO_CNTB.FE_DOCU_VENC, TXMVTO_CNTB.TI_DOCU, TXMVTO_CNTB.NU_DOCU, TXMVTO_CNTB.CO_UNID_CNTB,       
 TXMVTO_CNTB.CO_OPRC_CNTB, TXMVTO_CNTB.NU_MESE, TXMVTO_CNTB.NU_ASTO, TMAUXI_EMPR.CO_DOCU_SUNA, TXMVTO_CNTB.TI_AUXI_EMPR,       
 TXMVTO_CNTB.CO_AUXI_EMPR, TXMVTO_CNTB.CO_CNTA_EMPR, TXMVTO_CNTB.TI_OPER, TXMVTO_CNTB.CO_MONE,       
 CASE TXMVTO_CNTB.CO_MONE WHEN "SOL" THEN NULL ELSE TXMVTO_CNTB.FA_CAMB END FA_CAMB,      
 TXMVTO_CNTB.IM_MVTO_ORIG, TXMVTO_CNTB.IM_MVTO_CNTB, TTIDEN_CNTA.ID_CNTA,       
 IsNull(TTPORC_IMPT.PO_IMPT_REN1,0), IsNull(TTPORC_IMPT.PO_IMPT_REN2,0),       
 IsNull(TTPORC_IMPT.PO_IMPT_VEN1,0), IsNull(TTPORC_IMPT.PO_IMPT_VEN2,0), TXMVTO_CNTB.FE_ASTO_CNTB, TXMVTO_CNTB.TI_CAMB, TMPLAN_ANNO.ST_CNTA_CAMB,       
 TXMVTO_CNTB.FE_DOCU_REFE, TTDOCU_CNTB.CO_SUNA, TXMVTO_CNTB.TI_DOCU_REFE, TXMVTO_CNTB.NU_DOCU_REFE, TXMVTO_CNTB.ST_EXON_INAF         
 From TXMVTO_CNTB      
  Left Outer Join TTPORC_IMPT On      
  TTPORC_IMPT.CO_EMPR = TXMVTO_CNTB.CO_EMPR       
  And TTPORC_IMPT.NU_ANNO = TXMVTO_CNTB.NU_ANNO       
  And TTPORC_IMPT.NU_MESE = TXMVTO_CNTB.NU_MESE        
        Left Outer Join TTDOCU_CNTB On       
  TTDOCU_CNTB.TI_DOCU = TXMVTO_CNTB.TI_DOCU_REFE      
  Left outer join TMAUXI_EMPR On      
  TMAUXI_EMPR.CO_EMPR = TXMVTO_CNTB.CO_EMPR      
  And TMAUXI_EMPR.TI_AUXI_EMPR = TXMVTO_CNTB.TI_AUXI_EMPR      
  And TMAUXI_EMPR.CO_AUXI_EMPR = TXMVTO_CNTB.CO_AUXI_EMPR,      
  TTIDEN_CNTA, TMPLAN_ANNO      
 Where TXMVTO_CNTB.CO_EMPR = "' + @ISCO_EMPR + '"                                 
 And TXMVTO_CNTB.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '                                
 And TXMVTO_CNTB.CO_OPRC_CNTB In (       
     Select T1.CO_OPRC_CNTB From TTIDEN_OPER T1       
     Where T1.CO_EMPR = TXMVTO_CNTB.CO_EMPR       
     And T1.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR       
     And T1.ID_OPRC   = "' + @VSID_VENT + '" )       
 And TXMVTO_CNTB.NU_ANNO  = ' + @VSNU_ANNO + '                                
 And TXMVTO_CNTB.NU_MESE >= ' + @VSNU_MESE_INIC + '                      
 And TXMVTO_CNTB.NU_MESE <= ' + @VSNU_MESE_FINA + '                               
 And ((TXMVTO_CNTB.CO_CNTA_EMPR In (       
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2       
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR      
     And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR      
     And T2.ID_CNTA In ( "' + @VSID_VENT + '", "' + @VSID_EXPO + '")) ' + @ISCA_WHER_LOCA  + ' )                        
 Or  (TXMVTO_CNTB.CO_CNTA_EMPR In (       
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2       
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR      
     And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR      
     And T2.ID_CNTA IN ("' + @VSID_IIGV + '", "' + @VSID_IMSE_CONS + '", "' + @VSID_TRIB + '"))))      
 and TXMVTO_CNTB.SI_MVTO_CNTB = "APR"       
 and TTIDEN_CNTA.CO_EMPR   = TXMVTO_CNTB.CO_EMPR       
 and TTIDEN_CNTA.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR       
 and TTIDEN_CNTA.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR       
 And TMPLAN_ANNO.CO_EMPR = TXMVTO_CNTB.CO_EMPR       
 And TMPLAN_ANNO.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR       
 Union All       
 Select Null, Null, Null, Null, "99", "999", 99, "9999999999", Null, Null, Null,      
 Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null       
 Order By 5,6,7,8,12,10,11 ')  
   
Open CU_TXMVTO_CNTB_Q21_1  
Fetch CU_TXMVTO_CNTB_Q21_1 into  
    @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CNNU_MESE,   
    @CSNU_ASTO, @CSCO_DOCU_SUNA, @CSTI_AUXI_EMPR, @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB,   
    @CSCO_MONE, @CNFA_CAMB, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSID_CNTA,   
    @CNPO_REN1, @CNPO_REN2, @CNPO_IGV1, @CNPO_IGV2, @CDFE_ASTO_CNTB, @CSTI_CAMB, @CSST_CNTA_CAMB,           
    @CDFE_DOCU_REFE, @CSCO_SUNA_REFE, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CSST_EXON_INAF          
  
Select @CSNU_ASTO_BASE = Null                                
Select @VSCO_MONE_BASE = Null                                
                                
While @@Fetch_status = 0                                
 Begin                                
  If @CSNU_ASTO_BASE != Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +                                 
    Substring( Convert(Varchar(3),100 + @CNNU_MESE),2,2) + Rtrim(@CSNU_ASTO) And @VSCO_MONE_BASE IS NOT Null   
   Begin                                
   Select @VNIM_TOTA_BASX = Round(@VNIM_TOTA_ORIG - @VNIM_IIGV_ORIG - @VNIM_IISC_ORIG - @VNIM_TRIB_ORIG,2)                                
   Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2) - @VNIM_IISC_ORIG                                
                
---** LEE DE DATOS CONTABLES                
     Select @VNIM_CONT_BASX = Round(@VNIM_TOTA_CONT - @VNIM_IIGV_CONT - @VNIM_IISC_CONT - @VNIM_TRIB_CONT,2)                                
     Select @VNIM_CONT_BASY = Round(@VNIM_IIGV_CONT / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2) - @VNIM_IISC_CONT                        
---** LEE DE DATOS CONTABLES                
                                
---######              
--select @VNPO_IGV1 , @VNPO_IGV2, @VNIM_TOTA_BASX, @VNIM_TOTA_BASY, @VNIM_TOTA_ORIG, @VNIM_IIGV_ORIG, Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2))  
                                   
     If Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)) > 0.50                                
     Begin                                
      Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASY,2)                                
      Select @VNIM_INAF_ORIX = Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)                                
--** LEE DE DATOS CONTABLES                
      Select @VNIM_AFEC_CONX = Round(@VNIM_CONT_BASY,2)                                
      Select @VNIM_INAF_CONX = Round(@VNIM_CONT_BASX - @VNIM_CONT_BASY,2)                                
--** LEE DE DATOS CONTABLES                
     End                                    
     Else                                
     Begin                                
      Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASX,2)                                
      Select @VNIM_INAF_ORIX = 0.00                                
--** LEE DE DATOS CONTABLES               
      Select @VNIM_AFEC_CONX = Round(@VNIM_CONT_BASX,2)                                
      Select @VNIM_INAF_CONX = 0.00                                
--** LEE DE DATOS CONTABLES                
     End                    
  
     If @VSCO_MONE != @VSCO_MONE_BAS1                                
     Begin                                
      Select @VNIM_EXPO_ORIX = @VNIM_EXPO_ORIG                                
      Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG + @VNIM_TRIB_ORIG + @VNIM_IISC_ORIG  
      Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG                                
      Select @VNIM_AFEC_SOLX = @VNIM_AFEC_CONX                
      Select @VNIM_INAF_SOLX = @VNIM_INAF_CONX                
      Select @VNIM_EXPO_SOLX = @VNIM_EXPO_CONT                
      Select @VNIM_IIGV_SOLX = @VNIM_IIGV_CONT  
      Select @VNIM_TRIB_SOLX = Round(@VNIM_TRIB_CONT,2)                                
      Select @VNIM_IISC_SOLX = Round(@VNIM_IISC_ORIG,2)  
      Select @VNIM_TOTA_SOLX = @VNIM_TOTA_CONT                
     End                                
     Else                                
     Begin             
      Select @VNIM_EXPO_ORIX = @VNIM_EXPO_CONT  
      Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX,2)                                
      Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX,2)                                
      Select @VNIM_EXPO_SOLX = Round(@VNIM_EXPO_ORIG,2)                                
      Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG,2)                                
      Select @VNIM_IISC_SOLX = Round(@VNIM_IISC_ORIG,2)  
      Select @VNIM_TRIB_SOLX = Round(@VNIM_TRIB_CONT,2)                                
      Select @VNIM_TOTA_SOLX = Round(@VNIM_TOTA_ORIG,2)                             
      Select @VNIM_AFEC_ORIX = Null                                
      Select @VNIM_INAF_ORIX = Null  
      Select @VNIM_IIGV_ORIX = Null  
      Select @VNIM_TOTA_ORIX = Null                                
      Select @VNFA_CAMB   = Null                                
     End   
  
     Select @VSCO_SUNA = CO_SUNA, @VSNO_DOCU = NO_DOCU       
     From TTDOCU_CNTB                               
     Where TI_DOCU = @VSTI_DOCU                  

	-- Si reporte es Estandar se suman todos los tributos en una sola columna
	 If @ISTI_REPO_INFO = 'ORI'   
        Select @VNIM_IIGV_SOLX = @VNIM_IIGV_SOLX + @VNIM_IISC_SOLX + @VNIM_TRIB_SOLX

     If @ISTI_REPO_INFO = 'OFI' AND @VNIM_INAF_SOLX <> 0   
       Begin   
		 If @VSST_EXON_INAF = 'EXO'  
			Begin   
			   Select @VNIM_EXON_SOLX = @VNIM_INAF_SOLX  
			   Select @VNIM_INAF_SOLX = 0  
			End  
       End  
  
     If @ISTI_REPO_INFO = 'OFI' AND @VNIM_EXPO_ORIX != 0                     
	  Begin   
	   Select @VNIM_INAF_ORIX = 0   
	   Select @VNIM_INAF_SOLX = 0   
	  End   
  
   Insert Into #TWMVTO_CNTB_Q21_1  
   (FE_DOCU     , FE_DOCU_VENC, TI_DOCU_SUNA, TI_DOCU  , NO_DOCU     , NU_DOCU     , CO_UNID_CNTB,  
    CO_OPRC     , NU_ASTO     , CO_DOCU_SUNA, CO_CLIE     , NO_CORT_CLIE, NU_RUCS_CLIE, CO_MONE     ,   
    IM_INAF_ORIG, IM_AFEC_ORIG, IM_EXPO_ORIG, IM_IIGV_ORIG, IM_TOTA_ORIG, IM_INAF_CNTB, IM_EXON_CNTB,   
    IM_AFEC_CNTB, IM_EXPO_CNTB, IM_IIGV_CNTB, IM_IISC_CNTB, IM_TRIB_CNTB, IM_TOTA_CNTB, FA_CAMB     ,   
    FE_DOCU_REFE, CO_SUNA_REFE, TI_DOCU_REFE, NU_DOCU_REFE, ST_EXON_INAF )  
   Values(  
   @VDFE_DOCU, @VDFE_DOCU_VENC, @VSCO_SUNA, @VSTI_DOCU, @VSNO_DOCU, @VSNU_DOCU, @VSCO_UNID,   
   @VSCO_OPRC, @VSNU_ASTO, @VSCO_DOCU_SUNA, @VSCO_AUXI, @VSNO_CORT_CLIE, @VSNU_RUCS_CLIE, @VSCO_MONE,   
   @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_EXPO_ORIX, @VNIM_IIGV_ORIX, @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_EXON_SOLX,   
   @VNIM_AFEC_SOLX, @VNIM_EXPO_SOLX, @VNIM_IIGV_SOLX, @VNIM_IISC_SOLX, @VNIM_TRIB_SOLX, @VNIM_TOTA_SOLX, @VNFA_CAMB,   
   @VDFE_DOCU_REFE, @VSCO_SUNA_REFE, @VSTI_DOCU_REFE, @VSNU_DOCU_REFE, @VSST_EXON_INAF)  
  
 Select @VSTI_CAMB_BASE = NULL                    
 Select @VDFE_ASTO_CNTB = NULL                    
 Select @VSCO_MONE_BASE = Null                                
 Select @VDFE_DOCU      = Null                                
 Select @VDFE_DOCU_VENC = Null                                
 Select @VSTI_DOCU      = Null                                
 Select @VSNO_CORT_CLIE = Null                                
 Select @VSNU_RUCS_CLIE = Null                                
 Select @VSCO_MONE      = Null                        
 Select @VNIM_IIGV_ORIG = 0.00                                
 Select @VNIM_TOTA_ORIG = 0.00                                
 Select @VNIM_EXPO_ORIG = 0.00                                
 Select @VNIM_AFEC_ORIX = 0.00                                
 Select @VNIM_INAF_ORIX = 0.00                                
 Select @VNIM_EXPO_ORIX = 0.00                                
 Select @VNIM_IIGV_ORIX = 0.00                                
 Select @VNIM_TOTA_ORIX = 0.00                                
 Select @VNIM_AFEC_SOLX = 0.00                                
 Select @VNIM_INAF_SOLX = 0.00      
 Select @VNIM_EXON_SOLX = 0.00, @VNIM_IISC_SOLX = 0.00, @VNIM_TRIB_SOLX = 0.00                            
 Select @VNIM_EXPO_SOLX = 0.00                                
 Select @VNIM_IIGV_SOLX = 0.00                                
 Select @VNIM_TOTA_ORIX = 0.00                                
 Select @VNFA_CAMB  = 0.00                                
 Select @VSNU_ASTO  = Null        
 Select @VSST_EXON_INAF = Null  
                                
 Select @VNIM_TOTA_CONT = 0.00                
 Select @VNIM_IIGV_CONT = 0.00                
 Select @VNIM_EXPO_CONT = 0.00                
 Select @VNIM_AFEC_CONX = 0.00                
 Select @VNIM_INAF_CONX = 0.00                
 Select @VDFE_DOCU_REFE = NULL  
 Select @VSCO_SUNA_REFE = NULL          
 Select @VSTI_DOCU_REFE = NULL          
 Select @VSNU_DOCU_REFE = NULL      
  
 Select @VNIM_TRIB_ORIG = 0.00  
 Select @VNIM_TRIB_CONT = 0.00  
 Select @VNIM_IISC_SOLX = 0.00  
 Select @VNIM_IISC_ORIG = 0.00  
 Select @VNIM_IISC_CONT = 0.00  
End                                
 /*----- Acumula Movimientos - Provisiones -----*/                                
   Select @CSNU_ASTO_BASE = Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +   
       Substring( Convert(Varchar(3),100 + @CNNU_MESE),2,2) + Rtrim(@CSNU_ASTO)  
---####  
------------------------------------------------------  
-- OBTENGO EL CODIGO SUNAT DE LA TABLA DE DOCUMENTOS                                
 select @VSCO_SUNA_0001 = CO_SUNA                                
 FROM TTDOCU_CNTB                                
 WHERE TI_DOCU = @CSTI_DOCU_CNTB                                
  
 If @CSTI_DOCU_CNTB is not null  
-- SI EL CO_SUNA DE LA TMPARA_CONT = CO_SUNA DE LA TTDOCU_CNTB                 
 IF  @VSCO_SUNA_NOCR = @VSCO_SUNA_0001                                
-- SE OBTIENE EL TIPO DOCUMENTO DE REFERENCIA, EL NUMERO Y LA FECHA DE LA FACTURA ORIGEN                            
  Begin                                
    SELECT @VSNU_DOCU_0001 = NU_DOCU_REFE,                                
     @VDFE_DOCU_0001 = FE_DOCU_REFE                                
    FROM TXMVTO_CNTB              
    WHERE CO_EMPR = @ISCO_EMPR                                
    AND NU_CNTB_EMPR = @INNU_CNTB_EMPR                                
    AND CO_UNID_CNTB = @CSCO_UNID                                
    AND NU_ANNO = @INNU_ANNO                                
    AND NU_MESE = @INNU_MESE_FINA                                
    AND CO_OPRC_CNTB = @CSCO_OPRC                                
    AND NU_ASTO = @CSNU_ASTO                               
    AND CO_CNTA_EMPR = @CSCN_CNTB_EMPR                                 
    AND SI_MVTO_CNTB = 'APR'                          
  
    --SI EL MES DEL DOCUMENTO ES IGUAL AL MES DEL REPORTE                                
    IF Year(@VDFE_DOCU_0001) + Month(@VDFE_DOCU_0001) = @INNU_ANNO + @INNU_MESE_FINA                                
      Begin                                
        SELECT @VNPO_IGV1 = @VNPO_IGV1_ANNO                                
        SELECT @VNPO_IGV2 = @VNPO_IGV2_ANNO                                
      End                                
  
    --SI EL MES DEL DOCUMENTO ES DIFERENTE AL MES DEL REPORTE                                
    If Year(@VDFE_DOCU_0001)  + Month(@VDFE_DOCU_0001) != @INNU_ANNO + @INNU_MESE_FINA                                
      Select @VNPO_IGV1 = PO_IMPT_VEN1,                                
             @VNPO_IGV2 = PO_IMPT_VEN2                                
      From TTPORC_IMPT                                
      Where CO_EMPR = @ISCO_EMPR                                
      And   NU_ANNO = Year(@VDFE_DOCU_0001)                                   
      And   NU_MESE = MONTH(@VDFE_DOCU_0001)                                
  End                                
 Else  -- IF  @VSCO_SUNA_NOCR <> @VSCO_SUNA_0001                                
  Begin                                
   If Year(@CDFE_DOCU) + Month(@CDFE_DOCU) = @INNU_ANNO + @INNU_MESE_FINA                                  
    Begin                                
        SELECT @VNPO_IGV1 = @VNPO_IGV1_ANNO                                
        SELECT @VNPO_IGV2 = @VNPO_IGV2_ANNO                                
    End                                
  
  --SI EL MES DEL DOCUMENTO ES DIFERENTE AL MES DEL REPORTE                                
  If Year(@CDFE_DOCU) + Month(@CDFE_DOCU) != @INNU_ANNO + @INNU_MESE_FINA                                
    Select @VNPO_IGV1 = PO_IMPT_VEN1,                                
           @VNPO_IGV2 = PO_IMPT_VEN2                                
    From TTPORC_IMPT                                
    Where CO_EMPR = @ISCO_EMPR                                
    And   NU_ANNO = Year(@CDFE_DOCU)                                 
    And   NU_MESE = Month(@CDFE_DOCU)                                
 End --END DEL ELSE             
 -- FIN DEL IF  @VSCO_SUNA_NOCR = @VSCO_SUNA_0001                                
------------------------------------------------------                                
  
   -- Cuentas del Registro de VENTAS --------------                                
   If @CSID_CNTA = '002'                                
   Begin                 
  
 If IsNull(Rtrim(Ltrim(@CSTI_DOCU_CNTB)),'') != ''   
 Begin                   
      Select @VDFE_PAGO = NULL            
       
      Select @VDFE_PAGO = Max(FE_PAGO)             
      From TXMVTO_CNTB            
      Where CO_EMPR = @ISCO_EMPR            
      And NU_CNTB_EMPR = @INNU_CNTB_EMPR            
      And NU_ANNO = @INNU_ANNO            
      And NU_MESE = @INNU_MESE_INIC            
      And CO_CNTA_EMPR = @CSCN_CNTB_EMPR            
      And TI_AUXI_EMPR = @CSTI_AUXI_EMPR            
      And CO_AUXI_EMPR = @CSCO_AUXI            
      And TI_DOCU = @CSTI_DOCU_CNTB            
      And NU_DOCU = @CSNU_DOCU            
      And SI_MVTO_CNTB = 'APR'            
      And CO_OPRC_CNTB Not In             
              (Select CO_OPRC_CNTB             
               From TTIDEN_OPER             
               Where CO_EMPR = @ISCO_EMPR             
               And NU_CNTB_EMPR = @INNU_CNTB_EMPR             
               And ID_OPRC = @VSID_VENT )    
 End   
                 
     If @VSCO_MONE_BASE IS Null                                
     Begin                                
      Select @VSCO_AUXI = CO_AUXI_EMPR,                                
             @VSNO_CORT_CLIE = NO_AUXI,                                  
             @VSNU_RUCS_CLIE = NU_RUCS                                
      From TMAUXI_EMPR           
      Where  CO_EMPR = @ISCO_EMPR And                                
      TI_AUXI_EMPR = @CSTI_AUXI_EMPR And                                
      CO_AUXI_EMPR = @CSCO_AUXI                                
  
      If @@rowcount = 0                                
      Begin                     
       Select @VDFE_DOCU = Null      
       Select @VDFE_DOCU_VENC = Null                                                            
       Select @VSTI_DOCU = Null                                
       Select @VSNU_DOCU = Null                                
       Select @VSCO_AUXI = Null                                 
       Select @VSNO_CORT_CLIE = Null                                
       Select @VSNU_RUCS_CLIE = Null                                
      End                                
      Else                                 
      Begin                                
       Select @VDFE_DOCU = @CDFE_DOCU                                
       Select @VDFE_DOCU_VENC = @CDFE_DOCU_VENC                                
       Select @VSTI_DOCU = @CSTI_DOCU_CNTB                                
       Select @VSNU_DOCU = @CSNU_DOCU                                
      End                                
  
      If @VDFE_PAGO Is Not Null   
        Select @VDFE_DOCU_VENC = @VDFE_PAGO  
  
      Select @VSCO_DOCU_SUNA = @CSCO_DOCU_SUNA  
      Select @VSCO_UNID = @CSCO_UNID                                 
      Select @VSCO_OPRC = @CSCO_OPRC                                
      Select @VSNU_ASTO = @CSNU_ASTO                                
      Select @VSST_EXON_INAF = @CSST_EXON_INAF  
      Select @VDFE_DOCU_REFE = @CDFE_DOCU_REFE  
      Select @VSCO_SUNA_REFE = @CSCO_SUNA_REFE          
      Select @VSTI_DOCU_REFE = @CSTI_DOCU_REFE          
      Select @VSNU_DOCU_REFE = @CSNU_DOCU_REFE          
  
      Select @VSCO_MONE = @CSCO_MONE                                
      Select @VNFA_CAMB = Round(@CNFA_CAMB,3)                                
      Select @VSCO_MONE_BASE = @CSCO_MONE                                
      Select @VSTI_CAMB_BASE = @CSTI_CAMB                    
      Select @VDFE_ASTO_CNTB = @CDFE_ASTO_CNTB       
  
      If @VSTI_CAMB_BASE = 'PAC'              
        Begin               
           Select @VSTI_CAMB_BASE = @CSST_CNTA_CAMB               
        End                
     End --If @VSCO_MONE_BASE IS Null                                
  
     If @VSCO_MONE_BASE IS NOT Null                                
     Begin                                
      If @VSCO_MONE_BASE != @CSCO_MONE                                
      Begin                                
    Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                     
    @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                       
      End                      
          
      If @CSTI_OPER_CNTB = 'CAR'                                
      Begin                                
       Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG + @CNIM_MVTO_ORIG,2)                                
 --*** select importe contabilidad                
       Select @VNIM_TOTA_CONT = Round(@VNIM_TOTA_CONT + @CNIM_MVTO_CNTB,2)                      
 --*** select importe contabilidad                
      End                                
      Else If @CSTI_OPER_CNTB = 'ABO'                                
      Begin                     
       Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG - @CNIM_MVTO_ORIG,2)             
 --*** select importe contabilidad                
       Select @VNIM_TOTA_CONT = Round(@VNIM_TOTA_CONT - @CNIM_MVTO_CNTB,2)                                
 --*** select importe contabilidad                
      End                                
     End                                
   End ---(If @CSID_CNTA = '002')                               
                                
   /*----- Acumula Movimientos - IGV -----*/                                 
   If @CSID_CNTA = '009'                                
   Begin                                
    If @VSCO_MONE_BASE IS NOT Null                                
    Begin                                
     If @VSCO_MONE_BASE != @CSCO_MONE                       
     Begin                                
--**      Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)                                
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                     
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                          
                  
     End                                
     If @CSTI_OPER_CNTB = 'ABO'                                
     Begin                                
      Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG + @CNIM_MVTO_ORIG,2)            
 --*** select importe contabilidad                
       Select @VNIM_IIGV_CONT = Round(@VNIM_IIGV_CONT + @CNIM_MVTO_CNTB,2)              
 --*** select importe contabilidad                
     End                             
     Else If @CSTI_OPER_CNTB = 'CAR'                                
     Begin                                
      Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG - @CNIM_MVTO_ORIG,2)                                
 --*** select importe contabilidad                
       Select @VNIM_IIGV_CONT = Round(@VNIM_IIGV_CONT - @CNIM_MVTO_CNTB,2)                                
 --*** select importe contabilidad                
     End                                
    End                                
   End --(If @CSID_CNTA = '009')                                
  
   /*----- Acumula Movimientos - Otros Tributos -----*/                                 
   If @CSID_CNTA = '019'  
   Begin  
    If @VSCO_MONE_BASE IS NOT Null  
    Begin  
     If @VSCO_MONE_BASE != @CSCO_MONE  
     Begin  
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,  
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT  
     End  
     If @CSTI_OPER_CNTB = 'ABO'  
     Begin  
    Select @VNIM_TRIB_ORIG = Round(@VNIM_TRIB_ORIG + @CNIM_MVTO_ORIG,2)  
 --*** select importe contabilidad  
       Select @VNIM_TRIB_CONT = Round(@VNIM_TRIB_CONT + @CNIM_MVTO_CNTB,2)  
 --*** select importe contabilidad  
     End  
     Else If @CSTI_OPER_CNTB = 'CAR'  
     Begin  
       Select @VNIM_TRIB_ORIG = Round(@VNIM_TRIB_ORIG - @CNIM_MVTO_ORIG,2)  
 --*** select importe contabilidad  
       Select @VNIM_TRIB_CONT = Round(@VNIM_TRIB_CONT - @CNIM_MVTO_CNTB,2)  
 --*** select importe contabilidad  
     End  
    End  
   End --(If @CSID_CNTA = '019')  
  
   /*----- Acumula Movimientos - ISC -----*/                                 
   If @CSID_CNTA = '040'  
   Begin  
    If @VSCO_MONE_BASE IS NOT Null  
    Begin  
     If @VSCO_MONE_BASE != @CSCO_MONE  
     Begin  
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,  
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT  
     End  
     If @CSTI_OPER_CNTB = 'ABO'  
     Begin  
    Select @VNIM_IISC_ORIG = Round(@VNIM_IISC_ORIG + @CNIM_MVTO_ORIG,2)  
 --*** select importe contabilidad  
       Select @VNIM_IISC_CONT = Round(@VNIM_IISC_CONT + @CNIM_MVTO_CNTB,2)  
 --*** select importe contabilidad  
     End  
     Else If @CSTI_OPER_CNTB = 'CAR'  
     Begin  
       Select @VNIM_IISC_ORIG = Round(@VNIM_IISC_ORIG - @CNIM_MVTO_ORIG,2)  
 --*** select importe contabilidad  
       Select @VNIM_IISC_CONT = Round(@VNIM_IISC_CONT - @CNIM_MVTO_CNTB,2)  
 --*** select importe contabilidad  
     End  
    End  
   End --(If @CSID_CNTA = '040')  
  
   -- Cuenta de Exportaciones --------------                                
   If @CSID_CNTA = '026'                                
   Begin            
     If @VSCO_MONE_BASE IS Null                                
     Begin                                
      Select @VSCO_AUXI = CO_AUXI_EMPR,                                
             @VSNO_CORT_CLIE = NO_AUXI,                                  
             @VSNU_RUCS_CLIE = NU_RUCS                                
      From TMAUXI_EMPR                                
      Where  CO_EMPR = @ISCO_EMPR And                                
      TI_AUXI_EMPR = @CSTI_AUXI_EMPR And                                
      CO_AUXI_EMPR = @CSCO_AUXI                                
                                
      If @@rowcount = 0                                
      Begin                    
       Select @VDFE_DOCU = Null      
       Select @VDFE_DOCU_VENC = Null                                
       Select @VSTI_DOCU = Null                                
       Select @VSNU_DOCU = Null                                
       Select @VSCO_AUXI = Null                                 
       Select @VSNO_CORT_CLIE = Null                                
       Select @VSNU_RUCS_CLIE = Null                                
      End                                
      Else                  
      Begin                                
       Select @VDFE_DOCU = @CDFE_DOCU  
       Select @VDFE_DOCU_VENC = @CDFE_DOCU_VENC  
       Select @VSTI_DOCU = @CSTI_DOCU_CNTB  
       Select @VSNU_DOCU = @CSNU_DOCU  
      End                                
  
      Select @VSCO_UNID = @CSCO_UNID  
      Select @VSCO_OPRC = @CSCO_OPRC  
      Select @VSNU_ASTO = @CSNU_ASTO  
      Select @VSCO_SUNA_REFE = @CSCO_SUNA_REFE  
      Select @VSTI_DOCU_REFE = @CSTI_DOCU_REFE  
      Select @VSNU_DOCU_REFE = @CSNU_DOCU_REFE  
  
      Select @VSCO_MONE = @CSCO_MONE  
      Select @VNFA_CAMB = Round(@CNFA_CAMB,3)  
      Select @VSCO_MONE_BASE = @CSCO_MONE  
      Select @VSTI_CAMB_BASE = @CSTI_CAMB  
      Select @VDFE_ASTO_CNTB = @CDFE_ASTO_CNTB  
  
      If @VSTI_CAMB_BASE = 'PAC'  
        Begin  
          Select @VSTI_CAMB_BASE = @CSST_CNTA_CAMB  
        End  
     End --If @VSCO_MONE_BASE IS Null  
  
    If 1=1 ---@VSCO_MONE_BASE IS NOT Null  
    Begin  
      If @VSCO_MONE_BASE != @CSCO_MONE  
      Begin  
        Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                     
        @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                          
      End                                
  
     If @CSTI_OPER_CNTB = 'ABO'                                
     Begin                                
       Select @VNIM_EXPO_ORIG = Round(@VNIM_EXPO_ORIG - @CNIM_MVTO_ORIG,2)                                
 --*** select importe contabilidad                
       Select @VNIM_EXPO_CONT = Round(@VNIM_EXPO_CONT - @CNIM_MVTO_CNTB,2)                                
 --*** select importe contabilidad                
     End                                
     Else If @CSTI_OPER_CNTB = 'CAR'                                
     Begin                                
       Select @VNIM_EXPO_ORIG = Round(@VNIM_EXPO_ORIG + @CNIM_MVTO_ORIG,2)                                
 --*** select importe contabilidad                
       Select @VNIM_EXPO_CONT = Round(@VNIM_EXPO_CONT + @CNIM_MVTO_CNTB,2)                                
 --*** select importe contabilidad                
     End                                
    End                                
   End --(If @CSID_CNTA = '026')                                
                                
Fetch CU_TXMVTO_CNTB_Q21_1 into                                 
    @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CNNU_MESE,                    
    @CSNU_ASTO, @CSCO_DOCU_SUNA, @CSTI_AUXI_EMPR, @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB,                                 
    @CSCO_MONE, @CNFA_CAMB, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSID_CNTA, @CNPO_REN1, @CNPO_REN2,   
 @CNPO_IGV1, @CNPO_IGV2, @CDFE_ASTO_CNTB, @CSTI_CAMB, @CSST_CNTA_CAMB, @CDFE_DOCU_REFE,   
 @CSCO_SUNA_REFE, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CSST_EXON_INAF                                       
 End                                
 Close CU_TXMVTO_CNTB_Q21_1                                
 Deallocate CU_TXMVTO_CNTB_Q21_1                                
                               
If @ISTI_REPO_INFO = 'ORI'                                
Begin                                
 If @ISTI_REPO = 'ANA'                                
 Begin                                
  If @ISTI_ORDE_REPO = 'VOU'                                
    Select convert(varchar(10),FE_DOCU,103), TI_DOCU_SUNA, TI_DOCU,   
    NO_DOCU, NU_DOCU, CO_UNID_CNTB, CO_OPRC, NU_ASTO, CO_CLIE, NO_CORT_CLIE, NU_RUCS_CLIE, CO_MONE,   
    IM_INAF_ORIG, IM_AFEC_ORIG, IM_IIGV_ORIG, IM_TOTA_ORIG, IM_INAF_CNTB, IM_AFEC_CNTB, IM_IIGV_CNTB,   
       IM_TOTA_CNTB, FA_CAMB   
    From #TWMVTO_CNTB_Q21_1                                
    Order By TI_DOCU, NU_ASTO, NU_DOCU, FE_DOCU                    
  Else                                
    Select convert(varchar(10),FE_DOCU,103), TI_DOCU_SUNA, TI_DOCU,   
    NO_DOCU, NU_DOCU, CO_UNID_CNTB, CO_OPRC, NU_ASTO, CO_CLIE, NO_CORT_CLIE, NU_RUCS_CLIE, CO_MONE,   
    IM_INAF_ORIG, IM_AFEC_ORIG, IM_IIGV_ORIG, IM_TOTA_ORIG, IM_INAF_CNTB, IM_AFEC_CNTB, IM_IIGV_CNTB,   
       IM_TOTA_CNTB, FA_CAMB   
    From #TWMVTO_CNTB_Q21_1                                
    Order By TI_DOCU, FE_DOCU, NU_DOCU, NU_ASTO                    
 End                                
  Else if @ISTI_REPO = 'RES'                                
  Begin                                
     Select Max(TI_DOCU_SUNA), TI_DOCU, Max(NO_DOCU), sum(IM_INAF_ORIG),   
     Isnull(sum(Isnull(IM_AFEC_ORIG, 0)), 0), Isnull(sum(Isnull(IM_IIGV_ORIG, 0)), 0),   
 Isnull(sum(Isnull(IM_TOTA_ORIG, 0)), 0), Isnull(sum(Isnull(IM_INAF_CNTB, 0)), 0),   
     Isnull(sum(Isnull(IM_AFEC_CNTB, 0)), 0), Isnull(sum(Isnull(IM_IIGV_CNTB, 0)), 0),   
     Isnull(sum(Isnull(IM_TOTA_CNTB, 0)), 0)   
     From #TWMVTO_CNTB_Q21_1                                
     Group by TI_DOCU                                
     Order By TI_DOCU                                
  End                                
End                                
Else If @ISTI_REPO_INFO = 'OFI'                                
Begin                                
 If @ISTI_ORDE_REPO = 'VOU'                                
   Select  TI_DOCU, NO_DOCU, CO_UNID_CNTB, CO_OPRC, NU_ASTO, convert(varchar(10),FE_DOCU,103), convert(varchar(10),FE_DOCU_VENC,103),    
 TI_DOCU_SUNA , NU_DOCU,  CO_DOCU_SUNA, NU_RUCS_CLIE, NO_CORT_CLIE,    
 CO_MONE, IM_EXPO_CNTB, IM_AFEC_CNTB, IM_EXON_CNTB, IM_INAF_CNTB, IM_IISC_CNTB, IM_IIGV_CNTB, IM_TRIB_CNTB, 
 IM_TOTA_CNTB, FA_CAMB, convert(varchar(10),FE_DOCU_REFE,103),CO_SUNA_REFE, NU_DOCU_REFE
    From #TWMVTO_CNTB_Q21_1   
    Order By TI_DOCU_SUNA, NU_ASTO, NU_DOCU, FE_DOCU  
 Else  
   Select TI_DOCU, NO_DOCU, CO_UNID_CNTB, CO_OPRC, NU_ASTO, convert(varchar(10),FE_DOCU,103), convert(varchar(10),FE_DOCU_VENC,103),    
 TI_DOCU_SUNA , NU_DOCU,  CO_DOCU_SUNA, NU_RUCS_CLIE, NO_CORT_CLIE,    
 CO_MONE, IM_EXPO_CNTB, IM_AFEC_CNTB, IM_EXON_CNTB, IM_INAF_CNTB, IM_IISC_CNTB, IM_IIGV_CNTB, IM_TRIB_CNTB, 
 IM_TOTA_CNTB, FA_CAMB, convert(varchar(10),FE_DOCU_REFE,103),CO_SUNA_REFE, NU_DOCU_REFE
  From #TWMVTO_CNTB_Q21_1   
    Order By  TI_DOCU_SUNA, FE_DOCU, NU_ASTO, NU_DOCU  
End                                
                                
Return                                
/*--------------------------------- Fin ------------------------------------*/                   
    
GO
